Digital Ink Database Searching Using Handwriting Feature Synthesis

ABSTRACT

A method of searching a digital ink database is disclosed. The digital ink database is associated with a specific author. The method starts by receiving a computer text query from an input device. The computer text query is then mapped to a set of feature vectors using a handwriting model of that specific author. As a result, the set of feature vectors approximates features that would have been extracted had that specific author written the computer query text by hand. Finally, the set of feature vectors is used to search the digital ink database.

CROSS-REFERENCE TO RELATED APPLICATION

The present application is a Continuation application of U.S. application Ser. No. 10/492,169 filed on Apr. 9, 2004 which is a National Phase Application of PCT/AU02/0395, filed on Oct. 15, 2002, all of which is herein incorporated by reference.

TECHNICAL FIELD

The present invention broadly relates to digital processor implemented handwriting searching or recognition systems, and in particular, to a method of and apparatus for searching of a digital ink database using handwriting feature synthesis from a search query in text form.

BACKGROUND ART

“Digital ink database” as used herein refers to a database which stores handwritten characters, for example a string of handwritten characters forming a handwritten letter.

Overview

Pen-based computing systems provide a convenient and flexible means of human-computer interaction. Most people are very familiar with using pen and paper. This familiarity is exploited by known systems which use a pen-like device as a data entry and recording mechanism for text, drawings or calculations which are quite naturally supported by this medium. Additionally, written ink is a more expressive format than digital text, and ink-based systems can be language-independent.

The increasing use of pen computing and the emergence of paper-based interfaces to networked computing resources (for example see: P. Lapstun, Netpage System Overview, Silverbrook Research Pty Ltd, 6 Jun., 2000; and, Anoto, “Anoto, Ericsson, and Time Manager Take Pen and Paper into the Digital Age with the Anoto Technology”, Press Release, 6 Apr., 2000), has highlighted the need for techniques which are able to store, index, and search (raw) digital ink. Pen-based computing allows users to store data in the form of notes and annotations, and subsequently search this data based on hand-drawn queries. However, searching handwritten text is more difficult than traditional text (e.g. ASCII text) searching due to inconsistencies in the production of handwriting and the stylistic variations between writers.

Digital Ink Database Searching

The traditional method of searching handwritten data in a digital ink database is to first convert the digital ink database and corresponding search query to standard text using pattern recognition techniques, and then to match the query text with the converted standard text in the database. Fuzzy text searching methods have been described, see P. Hall and G. Dowling, “Approximate String Matching”, Computing Surveys, 12(4), pp. 381-402, 1980, that perform text matching in the presence of character errors, similar to those produced by handwriting recognition systems.

However, handwriting recognition accuracy remains low, and the number of errors introduced by handwriting recognition (both for the database entries and for the handwritten query) means that this technique does not work well. The process of converting handwritten information into text results in the loss of a significant amount of information regarding the general shape and dynamic properties of the handwriting. For example, some letters (e.g. ‘u’ and ‘v’, ‘v’ and ‘r’, ‘f’ and ‘t’, etc.) are handwritten with a great deal of similarity in shape. Additionally, in many handwriting styles (particularly cursive writing), the identification of individual characters is highly ambiguous.

Various techniques for directly searching and indexing a digital ink database are known in the prior art, see for example: A. Poon, K. Weber, and T. Cass, “Scribbler: A Tool for Searching Digital Ink”, Proceedings of the ACM Computer-Human Interaction, pp. 58-64, 1994; I. Kamel, “Fast Retrieval of Cursive Handwriting”, Proceedings of the 5^(th) International Conference on Information and Knowledge Management, Rockville, Md. USA, Nov. 12-16, 1996; W. Aref, D. Barbera, P. Vallabhaneni, “The Handwritten Trie: Indexing Electronic Ink”, The 1995 ACM SIGMOD International Conference on Management of Data, San Jose, Calif., May 1995; W, Aref, D. Barbera, D. Lopresti, and A. Tomkins, “Ink as a First-Class Datatype in Multimedia Databases”, Database System—Issues and Research Direction, pp. 113-163, 1996; and, R. Manmatha, C. Han, E. Riseman, and W. Croft, “Indexing Handwriting Using Word Matching”, Proceedings of the First ACM International Conference on Digital Libraries, pp. 151-159, 1996.

These systems use a similarity measure to compare a feature vector derived from a set of query pen strokes with a database of feature vectors derived from the digital ink database. The entries in the database that exhibit the greatest degree of similarity with the query are returned as matches. Additionally, some approaches create an index or use a partitioning scheme to avoid a sequential search of all entries in the database. See for example: D. Barbara, W. Aref, I. Kamel, and P. Vallabhaneni, “Method and Apparatus for Indexing a Plurality of Handwritten Objects”, U.S. Pat. No. 5,649,023; D. Barbara and I. Kamel, “Method and Apparatus for Similarity Matching of Handwritten Data Objects”, U.S. Pat. No. 5,710,916; D. Barbara and H. Korth, “Method and Apparatus for Storage and Retrieval of Handwritten Information”, U.S. Pat. No. 5,524,240; D. Barbara and W. Aref, “Method for Indexing and Searching Handwritten Documents in a Database”, U.S. Pat. No. 5,553,284; R. Hull, D. Reynolds, and D. Gupter, “Scribble Matching”, U.S. Pat. No. 6,018,591; A. Poon, K. Weber, and T. Cass, “Searching and Matching Unrecognized Handwriting”, U.S. Pat. No. 5,687,254; and, W. Aref and D. Barbara, “Trie Structure Based Method and Apparatus for Indexing and Searching Handwritten Databases with Dynamic Search Sequencing”, U.S. Pat. No. 5,768,423.

Other studies, J. Hollerbach, “An Oscillation Theory of Handwriting”, Biological Cybernetics, pp. 139-156, 1981, and, Y. Singer and N. Tishby, “Dynamical Encoding of Cursive Handwriting”, IEEE Conference on Computer Vision and Pattern Recognition, 1993, describe efforts to model the physical properties of handwriting for handwriting synthesis.

DISCLOSURE OF INVENTION

The digital ink database searching techniques previously described are dependent on an ink query that is generated by the writer who authored the digital ink database. However, it would be beneficial if a digital ink database was searchable using other input mechanisms, for example, using a text query entered with a computer keyboard, or spoken and recognized by a voice recognition system. Alternatively, a third party may wish to search the digital ink database, either using his or her own handwriting, or using a text-based query.

Ink database searching using handwriting feature synthesis allows a digital ink database to be searched using a text-based query. Using a writer-specific handwriting model derived from a handwriting recognition system or suitable training procedure, a text query is converted into feature vectors that are similar to the feature vectors that would have been extracted had the author of the digital ink database written the text query by hand. The feature vectors are then used to search the database, for example by using traditional techniques. This allows the searching of a digital ink database when the only input mechanism available is text entry, and can allow a person other than the author of the digital ink database to search the digital ink database.

According to an aspect of the present invention, there is provided a method of searching a digital ink database, the digital ink database being associated with a predetermined author, the method comprising the steps of:

-   -   receiving a computer text query from an input device;     -   mapping by a processing system the computer text query to a set         of feature vectors using a handwriting model of the         predetermined author, the set of feature vectors approximating         features that would have been extracted had the predetermined         author written the computer query text by hand; and     -   using the set of feature vectors to search the digital ink         database.

Other aspects are also disclosed.

BRIEF DESCRIPTION OF FIGURES

The present invention should become apparent from the following description, which is given by way of example only, of a preferred but non-limiting embodiment thereof, described in connection with the accompanying figures, wherein:

FIG. 1 illustrates a processing system.

FIG. 2 illustrates an overview of the handwriting recognition method.

FIG. 3 illustrates the digital ink database searching method using feature synthesis.

FIG. 4 illustrates a third party ink database searching method.

FIG. 5 illustrates training and recognition/search phases.

FIG. 6 illustrates a method for handwriting recognition.

FIG. 7 illustrates an example for text recognition.

MODES FOR CARRYING OUT THE INVENTION

The following modes are described as applied to the written description and appended claims in order to provide a more precise understanding of the subject matter of the present invention.

I. Preferred Embodiment

The present invention provides a method and apparatus for searching a digital ink database using a text query. In the figures, incorporated to illustrate the features of the present invention, like reference numerals are used to identify like parts throughout the figures.

Embodiments of the present invention can be realised using a processing system an example of which is shown in FIG. 1. In particular, the processing system 10 generally includes at least a processor 20, a memory 21, and an input device 22, such as a graphics tablet and/or keyboard, an output device 23, such as a display, coupled together via a bus 24 as shown. An external interface is also provided as shown at 25, for coupling the processing system to a digital ink database 11.

In use, the processing system 10 is adapted to allow data to be stored in and/or retrieved from the digital ink database 11. The processor 20 receives handwriting data, a text query, etc., via the input 22. From this, it will be appreciated that the processing system 10 may be any form of processing system or terminal such as a computer, a laptop, server, specialised hardware, or the like.

Modelling Handwriting

The writer-specific handwriting model describes the handwriting style of a particular user. Most user-adaptive handwriting recognition systems generate some kind of model to account for the stylistic variations between individual users. Generally, the purpose of these handwriting models is to map the feature vectors extracted from a set of input pen strokes into a set of letters that represent the recognized text.

However, the feature synthesis approach to digital ink searching uses a writer-specific handwriting model to perform the inverse mapping. That is, the model is used to convert query text into a set of feature vectors that approximate the features that would have been extracted had the writer written the query text by hand. FIG. 2 details the general steps in a handwritten text recognition system. The handwriting is sampled 26 and raw ink 27 is passed to a normalization step 28. The normalized ink 29 undergoes a segmentation step 30 and the resulting strokes 31 are passed to a feature extraction step 32 which extracts the feature vectors 33. Classification step 34 is then performed using the handwriting model 35, which produces the primitives 36. Text recognition step 37 receives the primitives 36 and uses the language model 38 and/or handwriting model 35 to generate text 39 corresponding to raw ink 27.

To use feature synthesis for ink database searching, an additional step is required. The writer-specific handwriting model 35 is required to be modified to store information that allows text to be mapped to ink features. To perform this mapping, a table (called a lexicon) translating individual letters and groups of letters (i.e. sequences of letters) into features is included in the handwriting model. After recognition has been performed, letters in the output text and the corresponding feature vectors used for recognition can be added to the lexicon.

Groups of commonly co-occurring letters and their corresponding feature vectors are concatenated and added to the lexicon. This is desirable since handwriting exhibits co-articulation effects (where the writing of a letter is influenced by the shape of surrounding letters) and commonly written letters (e.g. “qu”, “ed”, and “ing”) are likely to exhibit co-articulation. By storing the feature vectors of letter groups, a more accurate rendering of the query ink can be produced that considers the contextual effects of the stroke sequence.

The lexicon should be able to store multiple feature vectors for each letter sequence. Since the same letters can be recognized many times, the lexicon should be able to select the feature vectors that best represents the letters. This can be done by storing all feature vector sequences output by the recognizer for each letter sequence, together with a count of the number of times that feature vector sequence has been seen for that letter sequence. The feature vector sequence with the highest count (i.e. the most frequently seen and thus most probable) for a letter sequence is then used during feature synthesis.

The choice of which letter groups should be stored can be based on character transition statistics (for example, as derived from a text corpus) where character sequences with a high probability of occurrence are stored (e.g. the probability of “ing” is much greater than the probability of “inx”). Alternatively, all possible letter groupings can be stored after recognition, with some kind of culling procedure executed when the table becomes too large (for example, least-recently used).

Further improvements can be achieved by explicitly modeling word endings in the lexicon. Many writing styles exhibit poorly written characters at the end of words. This is particularly apparent in handwritten word suffixes such as “ing”, “er”, and “ed”. To model this behavior, an end of word character is appended to the letter sequence (e.g. “ing#”) to indicate that this letter sequence models a word ending. During feature synthesis, these entries can only be used to complete a query word.

Feature Synthesis

To search a digital ink database, the text query is converted to a set of feature vectors by the feature synthesis procedure that uses the writer-specific handwriting model. These feature vectors are then used as the query term for searching the digital ink database. The ink database search can be performed using traditional ink matching techniques. FIG. 3 describes this procedure. At step 40 text is input and the text 41 provided to feature synthesis step 42 which uses the handwriting model 35 to generate features 43. The features 43 are used in an ink searching step 44 of the digital ink database 11. This produces ink matches 45.

To perform feature synthesis, a search of the lexicon is performed to locate a sequence of lexicon entries that contain letter sequences that can be combined to produce the query text. The stored feature vectors are concatenated to produce the query feature vector. However, there may be a number of different combinations of lexicon entries that can be used to create the query text. It is assumed that using the minimum number of entries possible to produce the text will most accurately model the contextual effects. For example, assume the following entries exists in the lexicon:

TABLE 1 Example lexicon b bo bor borr ed ow rr rowed

The word “borrowed” can then be created as (bo)(rr)(ow)(ed), (borr)(ow)(ed), or (bor)(rowed), with the final construction being most the desirable since it is composed from the fewest elements.

A* Lexicon Search

For accurate results, the lexicon is expected to be very large, and the number of potential lexicon entry combinations for a word would be exponential. For queries containing long words, a complete enumeration of all permutations may not be practical. A modified A* search algorithm, see S. Russell and P. Norvig, Artificial Intelligence—A Modern Approach, Prentice Hall, 1995, can be used to search for a letter sequence s, where the path cost function g(s) is the number of lexicon entries used so far to create the text, and the estimated cost to the goal is:

$\begin{matrix} {{{h(s)} = 1},} & {{{{if}\mspace{14mu} {{length}(s)}} < {{length}({query})}}} \\ {{= 0},} & {{otherwise}} \end{matrix}$

This heuristic states that at least one additional lexicon entry is required to complete the letter sequence if the sequence has fewer letters than the query word. Nodes in the search tree are sorted by g(s)+h(s) (with lower scores being superior) and nodes with the same score are ordered by the number of letters in the sequence (with higher being superior).

Note that h(s) is a monotonic and admissible heuristic (i.e. it never overestimates the cost of reaching the goal) so the search is guaranteed to find the optimal solution and is optimally efficient (i.e. expands the fewest nodes possible to find the optimal solution). Proof of this result is given in R. Dechter and J. Pearl, “Generalized Best-First Search Strategies and the Optimality of A*”, Journal of the Association for Computing Machinery, 32(3), pp. 505-536, 1985.

As an example of the above procedure, the search for the word “borrowed” is given below. Each row in the table represents a search node, with higher scoring nodes located at the top of the table:

s g(s) h(s) g(s) + h(s) # Letters (borr) 1 1 2 4 (bor) 1 1 2 3 (bo) 1 1 2 2

The most promising node at the top of the table is expanded, resulting in:

s g(s) h(s) g(s) + h(s) # Letters (bor) 1 1 2 3 (bo) 1 1 2 2 (borr)(ow) 2 1 3 6

Again, the most promising node is expanded:

s g(s) h(s) g(s) + h(s) # Letters (bor)(rowed) 2 0 2 8 (bo) 1 1 2 2 (borr)(ow) 2 1 3 6

The top node is now a completed sequence, and no other node in the search can produce a better score, so this node is selected as the search result.

II. Various Embodiments

IIA. Feature Synthesis without Handwriting Recognition

Ink searching using feature synthesis can be performed without using a handwriting recognition system. The technique only requires the ability to build a lexicon of letter sequences and associated feature vectors to model the handwriting of the writer who authored the digital ink database.

If handwriting recognition results are not available for modelling, a training procedure can be used to generate the writer-specific lexicon. To do this, a user provides a sample of their handwriting by copying a specified training text, which is then used to build the lexicon. The training procedure is not required to perform full handwriting recognition since the text represented by the handwriting is already known; rather, it simply needs to segment the input into characters and strokes, convert the strokes into features, and store the appropriate letter groups and associated feature vectors in the lexicon.

The training text used to build the lexicon should be optimized to provide a balanced example set of individual letters and letter groups. That is, it should maximize the coverage of likely character unigrams, bigrams, and trigrams, see J. Pitrelli, J. Subrahmonia, M. Perrone, and K. Nathan, “Optimization of Training Texts for Writer-Dependent Handwriting Recognition”, Advances in Handwriting Recognition, World Scientific Publishing, 1999, with an emphasis on letters and letter sequences that are most likely to be encountered.

IIB. Different Features for Recognition and Ink Matching

It is desirable that both the handwriting recognition system and the ink-matching algorithm use the same feature representations, since the features used to search the digital ink database are derived from the results of the handwriting recognition.

However, it is possible to use different feature sets for the recognition and search provided the recognition features can be transformed into the search features. Some feature sets can allow a transformation from recognition features to search features to be learned from a set of training data.

Alternatively, many feature sets can allow the regeneration of an approximation of the digital ink from the recognition features, from which the second feature set can be extracted. That is, the text query is converted to a set of feature vectors using feature synthesis, and the inverse transformation of the feature-extraction process is applied to the features to convert them into digital ink from which the search features are extracted. Care must be taken to ensure that this procedure does not introduce artifacts in the digital ink that may affect the search feature extraction (e.g. discontinuities in the generated ink may cause problems for some feature extraction techniques).

IIC. Third-Party Ink Searching

A person can search the digital ink database of another writer by using handwriting recognition to convert their ink input into text, and using feature synthesis to convert the recognized text into features for ink searching.

FIG. 4 depicts this situation, with writer B searching the digital ink database authored by writer A. At step 46 ink is received from writer B and the strokes 47 are passed to feature extraction step 48. The features 49 are extracted and recognition step 50 uses a language model 51 and writer B model 52 to generate corresponding text 53. This is used to build a lexicon for writer B at lexicon builder step 54. Letter groups and features are sent back to writer B model 52 to improve/update the model. The text 53 then undergoes feature synthesis step 42 and a similar process as that described with reference to FIG. 3 is then followed to retrieve ink matches 45 that have been authored by writer A.

III. Further Example

The following example provides a more detailed outline of one embodiment of the present invention. This example is intended to be merely illustrative and not limiting of the scope of the present invention.

This section describes in detail an implementation of ink database searching using feature synthesis. It is assumed that a number of preprocessing steps have been performed, including word and character segmentation, and baseline orientation normalization. Note that this is just one possible way to implement the technique; there are alternate methods available for each stage of the process. For example, there are many different segmentation schemes, feature sets, handwriting models, and recognition procedures that could also be used.

The procedure for handwriting recognition and ink searching using feature synthesis requires a training phase and a recognition or searching phase. During the training phase, a set of training data is converted to stroke features that are clustered into stroke primitives and used to create a model of the handwriting. For recognition and ink searching, this model is used to decode input ink or synthesize features for ink searching. This process is depicted in FIG. 5. Note that the same preprocessing, normalization, segmentation, and feature extraction procedure is used for training, recognition and searching.

The handwriting recognition system maps input ink into a set of stroke code words that are used to search a dictionary for matching words. FIG. 6 provides an overview of this process, with the individual steps described below in more detail.

Smoothing

The ink is sampled at a constant rate of 100 Hz. Research has shown that handwriting has a peak spectral density at around 5 Hz that declines to noise level at about 10 Hz, see H. Teulings and F. Maarse, “Digital Recording and Processing of Handwriting Movements”, Human Movement Science, 3, pp. 193-217, 1984. Thus, a low-pass filter with a cutoff at 10 Hz will remove the high-frequency noise without affecting the relevant spectral components of the handwriting signal.

A low-pass filter conforming to the above specifications can be produced by circularizing the point coordinates, performing an FFT to remove the high frequency components, and recreating the signal using an inverse-FFT. However, a simple weighted averaging filter works as effectively. To smooth a sequences of points {p₁ . . . p_(n)):

$p_{i\;} = {\sum\limits_{j = {- k}}^{k}{\alpha_{k}p_{i + j}}}$ where ${\sum\limits_{j = {- k}}^{k}\alpha_{j}} = 1$

The filter width k and α smoothing coefficients are determined empirically.

Slant Correction

Many handwriting styles do not have a vertical principal axis of the drawn letters (i.e. the letters are drawn at a consistent slant). Removing handwriting slant is a normalization that can improve the recognition of handwritten letters. In handwriting, down-strokes are considered the most stable and consistent strokes, and thus are useful for detecting handwritten slant.

To detect handwritten slant, a weighted-average direction of the down strokes in points {p₁ . . . p_(n)} is estimated:

${slant} = \frac{\sum\limits_{i = 2}^{n}{d_{i}a_{i}}}{\sum\limits_{i = 2}^{n}d_{i}}$ where a_(i) = angle(p_(i), p_(i − 1)) $\begin{matrix} {d_{i} = {{p_{i} - p_{i - 1}}}} & {{{{if}\mspace{14mu} \alpha_{1}} < \alpha_{i} < \alpha_{2}}} \\ {= 0} & {{otherwise}} \end{matrix}$

Angles α₁ and α₂ define which stroke segments are considered as parts of a down stroke and are empirically set at 40° and 140° respectively (with 90° representing a vertical line). If the estimated slant deviates more than a certain threshold from the vertical, slant is removed using a shear transformation:

$x_{i} = \frac{\left( {y_{m\; {ax}} - y_{i}} \right) \times {\tan \left( {{90{^\circ}} - {slant}} \right)}}{y_{{ma}\; x} - y_{m\; i\; n}}$

where y_(min) and y_(max) represents the top and bottom of the bounding rectangle of the ink.

Zone Estimation

Zone estimation is used to normalize the height of the input ink. English letters exhibit three zones—the middle zone (corresponding to the height of letters such as ‘a’, ‘c’, ‘e’, etc.), and the upper and lower zones that contain the ascenders and descenders in letters such as ‘b’, ‘d’, ‘g’, and ‘j’.

Zone estimation is performed using a horizontal histogram of ink density. That is, the number of ink crossings is determined for an equally spaced series of horizontal lines passing through the bounding rectangle of the ink. The central peak of the histogram is found, as are the two points on either side of the histogram where the ink density drops below a certain fraction of the central peak height. These two points are selected as the upper and lower bounds of the middle zone. The upper and lower zones are defined as the space between the middle zone and the vertical extremum of the bounding rectangle.

Feature Extraction

The ink is segmented into sub-strokes at extrema in the vertical direction (i.e. at local maxima and minima of the Y coordinates). For segmentation to occur, the lengths of the two sub-strokes produced by splitting the stroke at the selected segmentation point must exceed a pre-calculated minimum distance (set at half the height of the estimated middle zone).

The segmented sub-strokes are then re-sampled to contain a constant n number of points located equidistantly along the stroke trajectory. A feature vector is then created for the sub-stroke by normalizing the coordinates:

$x_{1}^{\prime} = \frac{x_{i} - x_{m\; i\; n}}{h}$ $y_{i}^{\prime} = \frac{y_{i} - y_{middle}}{h}$

where

-   -   x_(min)=X minimum of sub-stroke bounding rectangle     -   y_(middle)=Y coordinate of the top of the middle zone     -   h=the height of the middle zone (i.e. y_(base)−y_(middle))

The feature vector is then created from the normalized coordinates as f_(i)={x′_(l),y′_(l), . . . , x′_(n),y′_(n)}.

Feature Reduction

The resulting vectors describe the sub-strokes using a large number of highly correlated features (clearly, the coordinates of point p_(i) are dependent on point p_(i-1) and so on). To lower the dimensionality of the vectors to m (where m<2n), the Karhunen-Loeve transform (see Principal Component Analysis—R. Duda, P. Hart, and D. Stork, Pattern Classification, Second Edition, John Wiley & Sons, Inc., pp. 569-570, 2001) is used. This procedure projects the higher-dimensionality features into a lower dimension using linear mapping that is optimal in a least-squares sense.

To do this, the covariance (autocorrelation) matrix for the set of all training feature vectors X={f₁, . . . , f_(n)} is calculated using:

$C = {\frac{1}{m - 1}X^{T}X}$

The eigenvectors and eigenvalues for this matrix are found (using the tridiagonal QL implicit algorithm, see W. Press, B. Flannery, S. Teukolsky, and W. Vetterling, W. T., Numerical Recipes in C, Cambridge: Cambridge University Press, 1988), and the eigenvectors corresponding to the largest n eigenvalues are used to form the PCA matrix Z. The feature vectors are then multiplied by this matrix to transform the features into a new feature space with an orthogonal uncorrelated axis:

f _(i) ′=f _(i) ^(T) Z

Vector Quantization

The transformed feature vectors are then clustered using a Kohonen Self-Organizing Feature Map (SOFM), see T. Kohonen, “Self-Organized Formation of Topologically Correct Feature Maps”, Biological Cybernetics, 43, pp. 59-69, 1982. This technique uses an unsupervised learning procedure to cluster the input vectors such that distance and proximity relationships between the vectors is maintained as far as possible. The SOFM used has a 2-dimensional structure, with visually similar code words (i.e. clusters) located near each other. As a result, the distance between two code words can be easily calculated using some distance measure (e.g. Euclidean distance) between the code word values.

SOFM training is performed iteratively using a simple two-layer neural network that is initialized with random weights. The best matching output neuron for a normalized input training vector x is found using minimum Euclidean distance:

${o(x)} = {\underset{i}{\overset{n}{argmin}}{{x - w_{i}}}}$

where w_(i) represents the weight vector of output node i. The weights of the node with the highest activation value and those nodes surrounding it (as determined by a neighborhood function Λ) are updated using:

w _(i)(t+1)=w _(i)(t)+η(t)[x−w _(i)(t)]

where η is a learning rate function and η and Λ are typically varied over time t. Training continues until there is no noticeable change to the neuron weights during an iteration of the training set.

To convert a sequence of sub-strokes to a code word vector, each sub-stroke feature vector is quantized using the trained SOFM and appended to the code word vector. A feature vector is quantized into a code word by selecting the largest activation value for the output neurons of the SOFM codebook:

$q = {\overset{n}{\underset{i}{argmax}}\; x^{T}w_{i}}$

Handwriting Model

The handwriting model stores a mapping of stroke code word vectors to letters (for text recognition) and the reverse mapping of letter groups to code word vectors (for feature synthesis). To build the handwriting model, each letter in the training data is converted to a code word vector that is stored in a table, along with the corresponding letter.

Note that a specific code word sequence may map to a number of letters (e.g. poorly-drawn ‘u’ may map to the same feature vectors as a ‘v’) and individual letters may be mapped to by a number of code word vectors. By maintaining a count of the number of times the code word vector represented a specific letter, the probability that the vector represents the letter x_(i) can be calculated given n lexicon entries for letter x_(i):

${P\left( x_{i} \right)} = \frac{c_{i}}{\sum\limits_{j = 1}^{n}c_{j}}$

where c_(i) is the count of the number of times the code word vector has been encountered representing the letter x_(i). The following is an example entry from the table that represents the hypothetical code word vector {3,4}:

TABLE 2 Example code word vector entry x_(i) c_(I) P(x_(i)) ‘u’ 120 0.54 ‘v’ 91 0.41 ‘r’ 12 0.05

This table indicates that if the code word sequence {3,4} is encountered in the input, there is a probability of 0.54 that it represents the letter ‘u’, a probability 0.41 that it represents an ‘v’, and a probability of 0.05 that it represents an ‘r’.

The reverse mapping table is produced in a similar way, storing code word vectors associated with letters and groups of letters.

Recognition

To perform handwriting recognition, the input ink is processed as described above, and the resulting code word vectors are used to search the handwriting model to produce letter hypotheses. A best-first search strategy is used to search a dictionary for the most likely word given the derived letter probabilities. The process is depicted below in FIG. 7.

Ink Searching

Ink searching is performed by using the handwriting model generated during handwriting recognition to map the input query text into a sequence of code words. This code word vector is used to search the digital ink database using an elastic matching technique. A full description of a similar ink-matching technique is given in D. Lopresti and A. Tomkins, “Temporal-Domain Matching of Hand-Drawn Pictorial Queries”, Handwriting and Drawing Research: Basic and Applied Issues, IOS Press, pp. 387-401, 1996. The resulting queries are then ordered by similarity and presented to the user.

Thus, there has been provided in accordance with the present invention, a method and apparatus for searching a digital ink database using a text query which satisfies the advantages set forth above.

The invention may also be said broadly to consist in the parts, elements and features referred to or indicated in the specification of the application, individually or collectively, in any or all combinations of two or more of said parts, elements or features, and where specific integers are mentioned herein which have known equivalents in the art to which the invention relates, such known equivalents are deemed to be incorporated herein as if individually set forth.

Although the preferred embodiment has been described in detail, it should be understood that various changes, substitutions, and alterations can be made herein by one of ordinary skill in the art without departing from the scope of the present invention as hereinbefore described and as hereinafter claimed. 

1. A method of searching a digital ink database, the digital ink database being associated with a predetermined author, the method comprising the steps of: receiving a computer text query from an input device; mapping by a processing system the computer text query to a set of feature vectors using a handwriting model of the predetermined author, the set of feature vectors approximating features that would have been extracted had the predetermined author written the computer query text by hand; and using the set of feature vectors to search the digital ink database.
 2. The method according to claim 1 wherein the input device is a computer.
 3. The method according to claim 1 wherein the input device is a tablet for receiving hand written input, and the receiving step comprises the sub-step of converting the hand written input to computer text through handwriting recognition.
 4. The method according to claim 3 wherein the hand written input is received from an author other that the predetermined author, and the set of feature vectors extracted during the handwriting recognition is different from the set of feature vectors used when searching the digital ink database.
 5. The method according to claim 1 wherein the input device receives a spoken voice input, and the receiving step comprises the sub-step of converting the spoken voice input to computer text through voice recognition.
 6. An apparatus for searching a digital ink database, the digital ink database being associated with a predetermined author, the apparatus comprising: an input device for receiving a computer text query; a processing system for mapping by the computer text query to a set of feature vectors using a handwriting model of the predetermined author, the set of feature vectors approximating features that would have been extracted had the predetermined author written the computer query text by hand, and for using the set of feature vectors to search the digital ink database; and an output device for outputting results of the search of the digital ink database. 